Range: Fix inverted horizontal scroll wheel events
authorDaniel Boles <dboles@src.gnome.org>
Sat, 14 Oct 2017 17:45:20 +0000 (18:45 +0100)
committerDaniel Boles <dboles.src@gmail.com>
Sat, 14 Oct 2017 17:56:32 +0000 (18:56 +0100)
Bug 737175 aimed to ensure that scrolling up on a horizontal range would
result in its value increasing, as that’s what users intuitively expect.
However, its commit 416c370da1d2eff2458e4a0c5b8e504cd8061559 meant that,
if the event gives scroll deltas, we inverted our delta unconditionally.

So it broke horizontal scrolling: scrolling left moved the slider right…

We must only invert if using dy as delta. dx already has the right sign,
so inverting it was wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=788905

gtk/gtkrange.c

index 8539674243b16542d8735906b5a8ca3767290204..b9ddad53d461af26c6ebabcf343c15ce2bf1fb00 100644 (file)
@@ -2313,7 +2313,7 @@ gtk_range_scroll_controller_scroll (GtkEventControllerScroll *scroll,
 #endif
 
   if (gtk_orientable_get_orientation (GTK_ORIENTABLE (range)) == GTK_ORIENTATION_HORIZONTAL)
-    delta = - (dx ? dx : dy) * scroll_unit;
+    delta = (dx ? dx : -dy) * scroll_unit;
   else
     delta = dy * scroll_unit;